Performance monitoring of pseudowire emulation

ABSTRACT

A system may forward to a network device an advertisement label mapping message that requests an establishment of an active performance monitoring (APM) control channel. Further, the system may process a reply label mapping message that is sent from the network device in response. The system may establish the APM control channel and a pseudowire associated with the APM control channel.

RELATED APPLICATION

This application claims priority under 35 U.S.C. §119 based on U.S. Provisional Patent Application No. 60/871,209, filed Dec. 21, 2006, the disclosure of which is incorporated by reference herein in its entirety.

BACKGROUND INFORMATION

Legacy network systems, such as ones based on Frame Relay or Asynchronous Transfer Mode (ATM), may communicate with packet switched networks (PSN), such as an Internet Protocol (IP) switching network or a Multi-protocol Label Switching (MPLS) network through pseudowire emulation (PWE). It may be necessary to manage and control the PWE and associated pseudowires.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 shows networks in which an active performance monitoring (APM) may be implemented;

FIG. 2 is an exemplary block diagram of Provider Edge (PE) routers and Provider Switch (PS) routers of FIG. 1;

FIG. 3 is an exemplary functional block diagram of components included in and/or implemented by PE and PS routers of FIG. 1;

FIG. 4 is an exemplary functional block diagram of the forwarding logic of FIG. 3;

FIG. 5A illustrates an exemplary packet that may arrive at the PE router of FIG. 1;

FIG. 5B illustrates an exemplary packet with a MPLS header inserted between the two headers of FIG. 5A;

FIG. 5C illustrates an exemplary structure of the MPLS header of FIG. 5B;

FIG. 6 shows an exemplary functional block diagram of the routing logic of FIG. 3;

FIG. 7 depicts an exemplary representation of a pseudowire and some of the components of FIG. 1;

FIG. 8 shows an exemplary functional block diagram of the pseudowire logic of FIG. 6;

FIG. 9A shows an exemplary format of a Label Distribution Protocol (LDP) message;

FIG. 9B depicts an exemplary format for the Mandatory/Optional Parameters field of FIG. 9A;

FIG. 9C shows an exemplary format for the forwarding equivalence class (FEC) type-length-value (TLV) of FIG. 9B;

FIGS. 10A and 10B show exemplary structures of a pseudowire (PW) ID FEC Element and a Generalized PW ID FEC Element, respectively;

FIG. 10C shows an exemplary structure of the Interface Parameters TLV of FIG. 10B;

FIG. 11A illustrates exemplary Virtual Circuit Control Verification (VCCV) Parameter field in LDP messages for establishing a pseudowire;

FIG. 11B shows an exemplary placement of a control word in a control message;

FIG. 11C shows an exemplary structure of the PW Associated Channel Header of FIG. 11B;

FIG. 12 shows an exemplary process for establishing an APM control channel for pseudowire (PW) emulation;

FIG. 13 shows an exemplary process for writing a LDP message which may convey PWE and APM capabilities from one PE router to another PE router; and

FIG. 14 illustrates an exemplary process for exchanging APM messages using an APM control channel.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

The following detailed description refers to the accompanying drawings. The same reference numbers in different drawings may identify the same or similar elements. As used herein, the term “bidirectional forwarding detection” (BFD) may refer to monitoring of a route or a data path for faults or anomalies in both forward and reverse directions.

Implementations described herein may relate to establishment and/or use of an active performance monitoring (APM) control channel for monitoring performance of pseudowires.

FIG. 1 shows, at a data link layer level (i.e., layer 2 in the Open Systems Interconnection (OSI) network model), a network 100 in which an APM control channel may be implemented. Network 100 may include legacy networks 102 and 104, an IP/MPLS network 106, and attachment circuits 108 and 110.

Legacy networks 102 and 104 may include devices and/or systems for providing native network services such as, for example, Ethernet, ATM, Frame Relay, and/or Time-division Multiplexing (TDM). As further shown in FIG. 1, legacy networks 102 and 104 may include customer edge (CE) routers 112 and 114. CE routers 112 and 114 may include routers located on customer premises and may provide an entry into and/or an exit from legacy networks 102 and 104.

IP/MPLS network 106 may include devices and/or systems that provide fast switching of packets. As shown in FIG. 1, IP/MPLS network 106 may include provider edge (PE) routers 116 and 118 and provider switch (PS) routers 120 and 122. PE routers 116 and 118 may include routers that may provide an entry and/or an exit to and from IP/MPLS network 106. PS routers 120 and 122 may include routers that accept IP/MPLS packets and route them toward their destination devices.

Attachment circuits 108 and 110 may include hardware, software, and/or combinations of hardware and software for interfacing legacy networks 102 and 104 to IP/MPLS network 106. Packets to and from legacy networks 102 and 104 may pass through attachment circuits 108 and 110 to move in and out of IP/MPLS network 106.

Packets may be forwarded from a device (e.g., CE router 112) in legacy network 102 to another device (e.g., CE router 114) in legacy network 104 via IP/MPLS network 106. In order to transport the packets that arrive through attachment circuits 108 and 110, IP/MPLS network 106 may establish network paths, known as pseudowires, and may route packets via the pseudowires.

PE routers 116/118 may establish pseudowires and route packets over the pseudowires. In addition, PE routers 116/118 may actively monitor the pseudowires in-band (i.e., in the same channel that carries customer network traffic) by setting and using an active performance monitoring (APM) control channel. By using the APM control channel, network traffic conditions, such as throughput, latency (i.e., delay), packet loss, jitter (i.e., a variation in arrival times of packets due to network congestion), can be evaluated.

FIG. 2 illustrates an exemplary block diagram of PE routers 116/118 and PS router 120/122 of FIG. 1, hereinafter referred to as “PE/PS routers 116-122.” Each of PE/PS routers 116-122 may include a processor 202, memory 204, line interfaces 206 and 208, an interconnect 210, and a bus 212.

Processor 202 may include one or more processors, microprocessors, application specific integrated circuits (ASICs), field programming gate arrays (FPGAs), and/or processing logic optimized for networking and communications. Processor 202 may process packets and/or network path-related information. Memory 204 may include static memory, such as read only memory (ROM), dynamic memory, such as random access memory (RAM), and/or onboard cache, for storing data and machine-readable instructions. Memory 204 may also include storage devices, such as a floppy disk, a CD ROM, a CD read/write (R/W) disc, and/or flash memory, as well as other types of storage devices. Line interfaces 206 and 208 may include devices for receiving incoming packets from networks and for transmitting packets to networks. Interconnect 210 may include one or more switches or switch fabrics for conveying an incoming packet from line interface 206 to line interface 208 based on a packet destination and stored path information. Bus 212 may include a path that permits communication among components of each of PE/PS routers 116-122.

FIG. 3 is an exemplary functional block diagram of components included in or implemented by each of PE/PS routers 116-122. As shown, PE/PS routers 116-122 may include a buffer manager 302, forwarding logic 304, and routing logic 306. Buffer manager 302 may provide a buffer for queuing incoming packets. If packets arrive simultaneously, one or more of the packets may be stored in the buffer until higher priority packets are processed and/or transmitted. Forwarding logic 304 may include hardware and/or software for directing a packet to a proper output port on one of line interfaces 206 or 208 based on routing information. Routing logic 306 may include hardware and/or software for communicating with other routers to gather and store routing information in a label information base (LIB).

FIG. 4 is an exemplary functional block diagram of forwarding logic 304. As shown, forwarding logic 304 may include MPLS logic 402, a label forwarding information base (LFIB) 404, and a LIB 406. MPLS logic 402 may include hardware and/or software for examining the header of an incoming packet and for sending the packet to the proper output port, based on the header information and path/routing information stored in LFIB 404 and LIB 406. LFIB 404 and LIB 406 may include a table and/or a database of network paths, called Label Switched Paths (LSPs), and/or routing information. LFIB 404 may contain more frequently used portions of LIB 406 and may be smaller than LIB 406.

MPLS logic 402 may perform different routing procedures, depending on whether its host router is operating as PE router 116, PE router 118, PS router 120, or PS router 122. It is possible for the host router to operate as PE router 116 or PS router 120 at different instances, depending on an incoming packet and its network configuration. If the host router operates as PE router 116, MPLS logic 402 may convert a packet that enters network 106 into a MPLS packet, by adding a MPLS header, as described below, to the packet. Conversely, MPLS logic 402 may convert a MPLS packet that exits network 106 by stripping away its MPLS header.

FIG. 5A illustrates an exemplary packet 500 that may arrive at PE router 116. As illustrated, packet 500 may include a L2 header 502 (i.e., OSI level 2 packet header) and a L3 header 504 (i.e., OSI level 3 packet header). Upon receiving packet 500, MPLS logic 402 may categorize packet 500 into a class, may determine the next destination of packet 500 based on the classification, along with information stored in LFIB 404, and/or LIB 406. In addition, MPLS logic 402 may insert a MPLS header 506 between L2 header 502 and L3 header 504, as illustrated in FIG. 5B, and may transmit packet 500 via line interface 206 or 208 (FIG. 2). At PE router 118, if packet 500, as shown in FIG. 5B, arrives to exit IP/MPLS network 106, MPLS logic 402 may strip MPLS header 506, resulting in packet 500 as shown in FIG. 5A, and may send packet 500 to network 104.

If the host router operates as PS router 120, MPLS logic 402 may perform an operation on MPLS header 506 of a received packet and may send (i.e., route) the packet based on MPLS header 506. The operation may include creating another MPLS header and inserting it next to MPLS header 506, swapping MPLS header 506 for another MPLS header, and/or removing MPLS header 506.

FIG. 5C illustrates the structure of MPLS header 506, which may include a label 508. In PS router 120, label 508 may be used by MPLS logic 402 as an index into LFIB 404 or LIB 406 to determine the operation (i.e., creating and inserting a MPLS header, swapping a MPLS header with another, or removing a MPLS header) and the next destination. Because many operations may be performed on a packet during its transit through IP/MPLS network 106 (e.g., at a particular PS router 120 or 122), it may be possible for the packet to have more than one MPLS header 506. However, when the packet leaves network 106, the MPLS headers may be removed.

FIG. 6 shows an exemplary functional block diagram of routing logic 306 of FIG. 3. As shown, routing logic 306 may include label distribution protocol (LDP) logic 602, pseudowire logic 604, and other logic 606.

LDP logic 602 may include hardware and/or software for sharing labels with other PE and PS routers that include LDP logic. Pseudowire logic 604 may include hardware and/or software for establishing pseudowires, as described below in more detail. Other logic 606 may include hardware and/or software for implementing other capabilities associated with routing logic 306, such as quality-of-service packet delivery.

LDP logic 602 may enforce a specific set of procedures (i.e., LDP protocol) for exchanging messages (e.g., LDP messages) about labels. Through the exchange of LDP messages, a LIB of each router in IP/MPLS network 106 may be populated with routing and label information by which participating PE and PS routers may abide.

Briefly, LDP messages may include information about forwarding equivalence classes (FECs) and a label associated (i.e., bound) with each FEC. At PE router 116, for example, each FEC may represent a class into which a packet from an outside network may be categorized. By classifying packets into FECs and dispatching the packets based on labels associated with FECs, IP/MPLS network 106 may provide routing services that are scaleable with increasing packet traffic.

If LDP logic 602 in PE router 116 populates its LIB 406 with FEC and label information that is propagated from PE router 118, a Label Switched Path (LSP) from PE router 116 to PE router 118 may be determined for packets that arrive at PE router 116 from attachment circuit 108. Similarly, if LDP logic 602 in PE router 118 populates its LIB 406 with FEC and label information from PE router 116, a LSP from PE router 116 to PE router 118 may be determined for packets that arrive at PE router 118 from attachment circuit 110. Each of the two LSPs between PE router 116 and PE router 118 may operate as a MPLS tunnel (e.g., a path in which a number of MPLS headers in a packet may be the same at the path's entry point and its exit point).

Returning to FIG. 6, pseudowire logic 604 may invoke LDP logic 602 if routing logic 306 receives or sends information related to FECs and/or labels for legacy network packets. More specifically, pseudowire logic 604 may create or exchange LDP messages about FECs that are associated with the legacy network packets and/or labels that are bound to the FECs. As a consequence of exchanging the LDP messages, pseudowire logic 604 may establish two LSPs over the MPLS tunnels described above. The two LSPs may form a bidirectional pseudowire, in which each LSP may be unidirectional and may run in a direction opposite to that of the other LSP.

FIG. 7 depicts an exemplary representation of a pseudowire 702 and some of the components of FIG. 1. As illustrated in FIG. 7, pseudowire 702 may extend from attachment circuit 108 to attachment circuit 110 and may depend on underlying MPLS tunnels 704 and 706 that extend between PE routers 116/118. If established, pseudowire 702 may transport a packet that flows into PE router 116 from attachment circuit 108.

If the packet arrives at PE router 116, PE router 116 may encapsulate (i.e., convert) the packet into a pseudowire packet by adding a pseudowire header to the packet. PE router 116 may encapsulate the packet as a MPLS packet, by adding a MPLS header, and may route the packet toward its destination through MPLS tunnel 704. If the packet emerges from MPLS tunnel 704 at PE router 118, PE router 118 may de-encapsulate (i.e., convert back) the packet by removing the MPLS header and the pseudowire header. Based on the information contained within the pseudowire header, the packet may or may not be transmitted to attachment circuit 110.

FIG. 8 depicts an exemplary functional block diagram of pseudowire logic 604. As shown, pseudowire logic 604 may include signaling logic 802, Virtual Circuit Connectivity Verification (VCCV) logic 804, Active Performance Monitoring (APM) logic 806, and/or Control Message Processing logic 808. Signaling logic 802 may include hardware and/or software for establishing and maintaining pseudowires by exchanging LDP messages through the use of LDP logic 602 and control messages, as described below. VCCV logic 804 may include hardware and/or software for creating and using a control channel associated with a pseudowire. APM logic 806 may include hardware and/or software for creating and using an APM control channel associated with a pseudowire. Control Message Processing logic 808 may include hardware and/or software for sending control messages and for processing control messages that may be received over pseudowires. In different implementations, the components in FIG. 8 may be arranged differently or combined (e.g., APM logic 806 may be included within VCCV logic 804).

Signaling logic 802 may permit identification of pseudowires and may signal attributes of pseudowires by performing various functions. The functions may include, for example, exchanging LDP messages with PS and PE routers 116-122. The LDP messages describe FECs that are associated with the legacy network packets and labels that are bound to the FECs.

FIG. 9A shows an exemplary format of a LDP message 900 that may be generated by signaling logic 802. In general, a LDP header (not shown) may precede one or more LDP messages 900, and each LDP message 900 may take the type-length-value (TLV) format. As shown in FIG. 9A, LDP message 900 may include a variety of fields, such as an Unknown field 902, a Message Type field 904, a Message Length field 906, a Message ID field 908, and a Mandatory/Optional Parameters field 910. Unknown field 902 may specify whether a reply to LDP message 900 is to be returned if LDP message 900 is of an unknown type. For example, if Unknown field 902 is “1,” LDP message 900 may be ignored if a value in Message Type field 904 is not recognized at the receiving router. Message Type field 904 may indicate a LDP message type (e.g., a Keep Alive message, an Address message, a Label Mapping Message, etc.). Message length field 906 may indicate the cumulative length, in octets, of Message ID 908 field and Mandatory/Optional Parameters field 910. Message ID field 908 may contain a value used to identify LDP message 900. Mandatory/Optional Parameters field 910 may include parameters that may be required and/or are optional for a particular Message Type 904 value.

FIG. 9B shows an exemplary format for Mandatory/Optional Parameters field 910. As shown, Mandatory Parameters field 910 may include a FEC-TLV field 912, which may provide a list of packet classes (i.e., FECs). FIG. 9C shows an exemplary format for FEC-TLV field 912. FEC-TLV field 912 may include a variety of fields (e.g., a Zero-flag field 914, a FEC field 916, a Length field 918, a FEC element field 920, etc.). Zero-flag field 914 and FEC field 916 may be set to constants (e.g., “0” and “0x0100,” respectively). Length field 918 may include a value for the length of FEC Element field 920.

In LDP messages that contain information about pseudowires, FEC Element field 920 may include, for example, a PW ID FEC Element, a Generalized PW ID FEC Element, etc. FIGS. 10A and 10B show the exemplary structures of a PW ID FEC Element 1002 and a Generalized PW ID FEC Element 1018, respectively.

As shown in FIG. 10A, PW ID FEC Element 1002 may include a PW id 1004, a C clement 1006, a PW Type 1008, a PW Info Length 1010, a Group ID 1012, a PW ID 1014, and/or an Interface Parameter Sub-TLV 1016. PW id 1004 may identify PW ID FEC Element 1002 and may be set to a constant value (e.g., “0x80”). C element 1006 may specify whether a control word is present for control messages that may be conveyed over the pseudowire associated with the PW ID FEC Element 1002. For a pseudowire with a APM control channel, C element 1006 may be set to a value (e.g., “1”), to indicate the presence of a control word in APM messages.

PW Type 1008 may represent the type of pseudowire. Examples of PW Type 1008 may include “0x0001” for Frame Relay, “0x0003” for ATM transparent cell transport, “0x0005” for Ethernet, etc. PW Info Length 1010 may specify the cumulative length of PW ID 1014 and Interface Parameter Sub-TLV 1016. Group ID 1012 may specify an arbitrary 32-bit value that represents a group of pseudowires. PW ID 1014 may identify a particular pseudowire. Interface Parameter Sub-TLV 1016 may be used to provide interface-specific information, such as attachment circuit (e.g., attachment circuits 108 and 110) characteristics.

As shown in FIG. 10B, Generalized PW ID FEC Element 1018 may include a Generalized PW id 1020, a C element 1022, a PW Type 1024, a PW Info Length 1026, Attachment Circuit (AC) information 1028, and/or an Interface Parameter TLV 1030. Generalized PW id 1020 may identify Generalized PW ID FEC Element 1018 and may be set to a constant value (e.g., “0x81”). C element 1022 and PW Type 1024 may specify the same information as C element 1006 and PW Type 1008, as described above. PW Info Length 1026 may specify the length of Attachment Circuit (AC) Information 1028. Attachment Circuit Information 1028 may specify address information related to local and remote attachment circuits, such as attachment circuits 108 and 110. Interface Parameters TLV 1030 may be used to provide interface-specific parameters, similar to Interface Parameter Sub-TLV 1016.

FIG. 10C shows an exemplary structure of Interface Parameters TLV 1030. As shown, Interface Parameters TLV 1030 may include zero fields 1032, a PW Interface Parameter TLV 1034, a length 1036, and/or Interface Parameter Sub-TLVs 1038. Zero fields 1032 and PW Interface Parameter TLV 1034 may be set to constants (e.g., “0x00” and “0x096B,” respectively). Length 1036 may specify the length of Interface Parameter Sub-TLVs 1038. Each of Interface Parameter Sub-TLVs 1038 may be used for the similar purpose as described above for Interface parameter Sub-TLV 1016.

Returning to FIG. 8, VCCV logic 804 may establish a control channel for a pseudowire, by placing a VCCV Parameter field as Interface Parameter Sub-TLV 1016 (FIG. 10A) in PW ID FEC element 1002 and/or in Interface Parameter Sub-TLVs 1038 (FIG. 10C) if signaling logic 802 exchanges LDP messages with its peers.

FIG. 11A illustrates an exemplary format of a VCCV Parameter field 1102. As shown, VCCV Parameter field 1102 may include a Type 1104, a Length 1106, Control channel (CC) Types 1108, and Connectivity Verification (CV) Types 1110. Type 1104 may identify VCCV Parameter field 1102 and may be set to an octet value (e.g., “0x0c”). Length 1106 may provide a length (e.g., four bytes) of VCCV Parameter field 1102 and may be set to a constant value (e.g., “0x04”).

CC Types 1108 may carry an eight-bit field to indicate the type of control channel(s) by which a router is capable of receiving control traffic. Of the eight bits in CC Types 1108 field, each of bits “0-2” may be used to designate one of three control channel types (e.g., as assigned by the Internet Assigned Numbers Authority (IANA)). CV Types 1110 may include a bit field to indicate the type of control messages for verifying connectivity between pseudowire endpoints. For example, CV Types 1110 may indicate that control messages may be an Internet Control Message Protocol (ICMP) Ping (i.e., an echo request based on ICMP), a LSP Ping (i.e., an echo request through LSP) or a bidirectional forwarding detection (BFD) signal, which may refer to messages used for continuous monitoring of a route or a data path for faults in both forward and reverse directions.

Returning to FIG. 8, if a pseudowire and an associated control channel are constructed, VCCV logic 804 may send and/or receive control messages through the control channel. The control channel may carry one of the message types indicated in CV Types 1110 of VCCV Parameter field 1102 throughout the life of the control channel. If transmitting control messages, VCCV logic 804 may generate a tag, known as a control word, to distinguish the control messages from other pseudowire packets if an in-band control channel is designated by CC Types 1108 field during the control channel setup.

FIG. 11B shows an exemplary placement of a control word in a control message 1112. As shown, the control word may be a PW Associated Channel Header 1116 and may be located between a MPLS label stack 1120, which includes MPLS headers 1118, and a L3 header 1114. FIG. 11C shows an exemplary structure of PW Associated Channel Header 1116. As shown, PW Associated Channel Header 1116 may include a Nibble 1122, a Version 1124, a Reserved 1126, and a Channel Type 1128. Nibble 1122 may indicate a channel associated with a pseudowire and may be set to a value (e.g., “0x01”). Version 1124 and Reserved 1126 may be constants and may be set to a value (e.g., “0”). Channel Type 1128 may be one of three values (e.g., “0x0021” to indicate Internet Protocol Version 4 (IPv4), “0x0056” for Internet Protocol Version 6 (IPv6), or “0x0006” for BFD channels that carry packets without Internet Protocol (IP)/User Datagram Protocol (UDP) header).

Returning to FIG. 8, APM logic 806 may request and set an active performance monitoring channel, by writing VCCV Parameter field 1102 (FIG. 11A) as Interface Parameter Sub-TLV 1016 (FIG. 10A) in PW ID FEC Element 1002 (FIG. 10A) and/or in Interface Parameter Sub-TLVs 1038 (FIG. 10C) if signaling logic 802 exchanges LDP messages with its peers.

More specifically, APM logic 806 may write a bit value of “1” for the APM bit (e.g., bit “6” in bits “3-7”) in CC Types 1108. The bits in CC Types 1108 that can serve as APM bit may be registered, such as bits “0-2” in CC Types 1108, with the IANA, or may not be registered with IANA. In addition, APM logic 806 may indicate in CV Types 1110 that active performance monitoring messages may be exchanged over an established APM control channel.

Once a pseudowire and an associated APM control channel are constructed, APM logic 806 may send, receive, and/or process APM messages over the APM control channel, to actively monitor performance of the associated pseudowire. The APM messages may carry test traffic, which may be generated at PE routers to obtain network performance metric, such as throughput, latency, packet loss, and jitter. Like VCCV control messages, each of the APM messages may carry a PW Associated Channel Header as its control word. However, in contrast to Channel Type 1128 of PW Associated Channel Header 1116 for VCCV control messages, Channel Type 1128 of PW Associated Channel Header 1116 for the APM messages may include a value that reflects the active performance monitoring function, as indicated in CV Types 1110 in LDP messages that are exchanged during the APM control channel setup.

Implementations described above provide an exemplary active performance monitoring system for a pseudowire, including the system elements, such as PE/PS routers 116-122, forwarding logic 304, routing logic 306, pseudowire logic 604, signaling logic 802, VCCV logic 804, and APM logic 806, as well as associated message structures and formats. FIGS. 12-14 depict exemplary processes capable of being performed by one or more of these system elements.

FIG. 12 shows an exemplary process 1200 for establishing an APM control channel for a pseudowire. Process 1200 may begin by obtaining parameters related to a remote PE router (e.g. PE router 118) and attachment circuits (e.g., attachment circuits 108 and 110) (block 1202). In one implementation, the parameters may be obtained from a network administrator or a user. In another implementation, the parameters may be obtained through a dynamic auto-discovery procedure.

An APM selection may be obtained (block 1204). In one implementation, the obtained selection may be made by a user, an administrator, and/or by another device. In other implementations, an APM may be selected as a default control channel for any pseudowire that may be established.

As further shown in FIG. 12, label distribution may be initiated (block 1206). In one implementation, for example, initiating the label distribution may include initiating and terminating LDP sessions, sending a Hello message, performing other LDP initialization procedures, etc. The label distribution may include a Downstream Unsolicited Mode and Liberal Label Retention Mode. In the Downstream Unsolicited Mode, labels and FECs associated with the labels may be transmitted from a router to downstream routers without demands from the downstream routers. In the Label Retention Mode, information about a FEC and a label associated with the FEC may be retained by a receiving router independent of a hop distance between the originating router and the receiving router.

Process 1200 may also include advertising PWE and APM capabilities (block 1208). In one implementation, to advertise PWE and APM capabilities, a LDP Message, such as a Label Mapping Message, may be generated and sent from the PE router that initiates the PWE. FIG. 13 shows an exemplary process 1300 for writing a LDP message that conveys PWE and APM capabilities from one PE router to another PE router.

As shown in FIG. 13, process 1300 may include signaling APM in CC Types 1108 and setting bits in CV Types 1110 within VCCV Parameter 1102 field to a value (block 1302). In one implementation, for example, the APM bit (i.e., a predetermined bit among bits “3-7” in CC Types 1108) may indicate that the transmitting PE router supports APM. The bits in CV Types 1110 may indicate the type of messages (i.e., APM messages) that may be exchanged over the APM control channel.

VCCV Parameter field 1102 may be used to form Interface Parameters Sub-TLV 1038 (block 1304). Interface Parameters Sub-TLV 1038 may be used to form Generalized PW ID FEC Element 1018 or PW ID FEC Element 1002 (block 1306). In one implementation, in forming Generalized PW ID FEC Element 1018, information about attachment circuits, obtained at block 1202, may be incorporated as Attachment Circuit Information 1028.

As further shown in FIG. 13, Generalized PW ID FEC 1018 or PW ID FEC 1002 may be used to complete a LDP message (block 1308). For example, in one implementation, Generalized PW ID FEC 1018 or PW ID FEC 1002 may be used to complete a LDP message as described above in connection with FIGS. 9A-9C. Process 1300 may also include sending the LDP message (block 1310). A LDP message that may be sent may include, for example, a Notification Message, a Label Request Message, a Label Release Message, a Label Mapping Message, etc.

Returning to FIG. 12, process 1200 may include receiving a reply LDP message (block 1210). In one implementation, the reply LDP message may originate from the PE router to which the original Label Mapping Message is sent. The reply LDP message may be a Label Release Message if the PE router at the other end of a pseudowire is unable to verify the information contained in the Label Mapping message. Otherwise, the reply LDP message may be another Label Mapping Message. If the reply LDP message is a Label Mapping Message, CV Types 1110 field may indicate that active performance monitoring is supported.

The label distribution may be updated or finalized (block 1212). In one implementation, the finalization may involve initiating and terminating a LDP session, sending additional LDP messages, etc., in accordance with LDP. If the PE routers finish exchanging Label Mapping Messages and update their LIBs, two unidirectional LSPs that transport messages in opposite directions may be available as a bidirectional pseudowire. In addition, an APM control channel that is associated with the pseudowire may be available.

FIG. 14 illustrates an exemplary process 1400 for exchanging APM messages over an APM control channel. As shown, process 1400 may begin with the obtaining of a request for an active performance testing (block 1402). In one implementation, the request may originate from a user and/or an administrator at a PE router or from a remote device, or from a legacy network device. An APM message, for the purpose of testing network performance, may be prepared (block 1404).

The APM message may be encapsulated with a control word (block 1406). More specifically, the encapsulation may be performed by adding a PW header (i.e., a MPLS header that indicates PW) and by inserting a control word (i.e., PW Associated Channel Header 1116). The control word may contain Channel Type 1128 that indicates active performance monitoring, as agreed upon by the end PE routers during the pseudowire setup.

As further shown in FIG. 14, the APM message may be encapsulated with a MPLS header (block 1408) and the APM message may be sent (block 1410). In one implementation, the encapsulated APM message may arrive at the destination PE router, which may respond to the APM message with a reply APM message. The PE router that sent the original APM message may receive the reply APM message and, based on reply characteristics (e.g., amount of time the reply APM message took to arrive), may determine pseudowire metrics, such as throughput, latency, packet loss, or jitter. In this manner, active performance monitoring using an in-band control channel may allow for continuous (or non-continuous) monitoring of the PW.

The exemplary processes, described above in connection with FIGS. 12-14, for establishing and using an APM control channel may be further illustrated through the following example, in conjunction with implementations described above in connection with FIGS. 1, 7, 9A-9C, 10A-10C, and 11A-11C. Assume that two legacy networks 102 and 104 are Ethernet networks capable of establishing a communication channel through PE routers 116 and 118 in IP/MPLS network 106. In addition, assume that PE routers 116 and 118 are capable of employing a pseudowire as their communication medium.

At PE router 116, parameters related to remote PE router 118 and its attachment circuit 110 may be obtained through an auto-discovery procedure. In addition, PE router 116 may obtain instructions to establish an APM control channel for actively testing and monitoring a pseudowire.

If PE router 116 obtains the parameters, PE router 116 may initiate label distribution, may begin a LDP session with an adjacent PS router 120, and may send a Label Mapping Message. The Label Mapping Message may contain information in the format illustrated in FIGS. 9A-9C, 10A-10C and 11A. PS router 120, in turn, may forward the Label Mapping Message to another PS router. The PS routers in IP/MPLS network 106 may continue to propagate the Label Mapping Message until PE router 118 receives the Label Mapping Message.

If PE router 118 receives the Label Mapping Message, PE router 118 may verify the contents of the Label Mapping Message. Upon successful verification, PE router 118 may update its LIB and may send its own Label Mapping Message as a reply. The reply may contain CC Types 1108 value that signals an APM control channel, as does the Label Mapping Message from PE router 116. CV Types 1110 value may indicate that APM messages are to be carried over an APM control channel.

If the verification is not successful, PE router 118 may send a Label Release Message. Upon receiving the reply from PE router 118, PE router 116 may update its own LIB. Through the preceding exchange of Label Mapping Messages, a bidirectional pseudowire may be established.

With a pseudowire in place, PE router 116 may receive a request from a network administrator to monitor the pseudowire. PE router 116 may write an APM message, and may encapsulate the message. The encapsulation may involve inserting a control word (e.g., setting Channel Types 1128 with a selected control message type from among those in CV Types 1110 in the reply Label Mapping Message) and appending a PW header. The encapsulated message may be further encapsulated with a MPLS header. PE router 116 may send the resulting APM message to PE router 118, which may respond to the APM message, depending on its contents. PE router 116 may continue to send additional APM messages until the performance monitoring is terminated.

The above example illustrates how an in-band APM control channel may be established and used for sending APM messages through pseudowires. In addition, the foregoing description of implementations provides illustration, but is not intended to be exhaustive or to limit the implementations to the precise form disclosed. Modifications and variations are possible in light of the above teachings or may be acquired from practice of the teachings.

For example, while FIG. 8 shows signaling logic 802, VCCV logic 804, and APM logic 806 in pseudowire logic 604, in other implementations, signaling logic 802, VCCV logic 804, and APM logic 806 may have different functional hierarchy. For example, signaling logic 802 may include VCCV logic 804 and VCCV logic 804 may, in turn, include APM logic 806.

In addition, while series of acts have been described with regard to processes illustrated in FIGS. 12-14, the order of the acts may be modified in other implementations. For example, block 1204 may be performed before block 1202. Further, non-dependent acts may represent acts that can be performed in parallel. For example, blocks 1202, 1204, and 1206 may be performed in parallel. In another example, blocks 1302, 1304, and 1306 may be performed in parallel.

It will be apparent that aspects described herein may be implemented in many different forms of software, firmware, and hardware in the implementations illustrated in the figures. The actual software code or specialized control hardware used to implement aspects does not limit the invention. Thus, the operation and behavior of the aspects were described without reference to the specific software code—it being understood that software and control hardware can be designed to implement the aspects based on the description herein.

Further, certain portions of the implementations have been described as “logic” that performs one or more functions. This logic may include hardware, such as a processor, an application specific integrated circuit, or a field programmable gate array, software, or a combination of hardware and software.

No element, act, or instruction used in the present application should be construed as critical or essential to the implementations described herein unless explicitly described as such. Also, as used herein, the article “a” is intended to include one or more items. Where only one item is intended, the term “one” or similar language is used. Further, the phrase “based on” is intended to mean “based, at least in part, on” unless explicitly stated otherwise. 

1. A method comprising: forwarding to a network device an advertisement label mapping message that requests an establishment of an active performance monitoring control channel; processing a reply label mapping message sent from the network device in response to the advertisement label mapping message; establishing a pseudowire and the active performance monitoring control channel associated with the pseudowire; inserting a channel type field in a control word of an active performance monitoring message to indicate that the active performance monitoring message carries performance testing related information; generating the active performance monitoring message; and sending the active performance monitoring message over the active performance monitoring control channel.
 2. The method of claim 1, wherein the method further includes: actively monitoring the pseudowire using the active performance monitoring control channel.
 3. The method of claim 2, wherein actively monitoring the pseudowire includes evaluating at least one of: throughput, latency, packet loss, or jitter.
 4. The method of claim 1, wherein forwarding to a the network device the advertisement label mapping message includes: including a code in a connectivity verification types field within a virtual circuit connectivity verification parameter field in the advertisement label mapping message.
 5. The method of claim 1, wherein processing the reply label mapping message includes: determining if the network device supports active performance monitoring, based on values within a connectivity verification types field within a virtual circuit connectivity verification parameter field in the reply label mapping message.
 6. The method of claim 1, wherein forwarding to the network device the advertisement label mapping message includes: inserting a code in a control channel types field within a virtual circuit connectivity verification parameter field in the advertisement label mapping message to request the establishment of the active performance monitoring control channel.
 7. The method of claim 1, wherein processing the reply label mapping message includes: determining if the network device supports the active performance monitoring control channel based on values within a control channel types field within a virtual circuit connectivity verification parameter field in the reply label mapping message.
 8. A device comprising: one or more processors to: signal an active performance monitoring control channel to a remote device by sending a request message; establish a pseudowire that includes the active performance monitoring control channel based on a response message from the remote device; insert a channel type field in a control word in each of a plurality of test messages to indicate that the test messages carry performance testing related information; generate the test messages; and actively monitor the pseudowire by sending the test messages to the remote device through the active performance monitoring control channel.
 9. The device of claim 8, wherein the request message includes: at least one of a pseudowire ID forwarding equivalence class type-length-value element or a generalized pseudowire ID forwarding equivalence class type-length-value element.
 10. The device of claim 9, wherein the request message includes a forwarding equivalence class type-length-value.
 11. The device of claim 9, wherein the generalized pseudowire ID forwarding equivalence class type-length-value element includes: an interface parameters sub-type-length-value.
 12. The device of claim 11, wherein the interface parameters sub-type-length-value includes: a virtual circuit connectivity verification parameter field.
 13. The device of claim 8, wherein the response message includes: a control channel types field; and a connectivity verification types field.
 14. The device of claim 8, further comprising: line cards that receive and send packets to and from circuits that are connected to the device.
 15. The device of claim 14, wherein the circuits include at least one attachment circuit for one of asynchronous transfer mode packets, frame relay packets, or time division multiplexed packets.
 16. A device comprising: means for indicating an active performance monitoring capability and a pseudowire emulation capability to a network device; means for establishing a pseudowire that includes an active performance monitoring control channel based on a response from the network device; means for inserting a channel type field in a control word in each of a plurality of active performance monitoring messages to indicate that the active performance monitoring messages carry performance testing related information; means for generating the active performance monitoring messages; and means for transmitting the active performance monitoring messages over the pseudowire.
 17. A device comprising: one or more processors configured to: receive from a network device an advertisement label mapping message that requests an establishment of an active performance monitoring control channel; send a reply label mapping message to the network device in response to the advertisement label mapping message; establish a pseudowire that includes the active performance monitoring control channel; and receive a test message that includes a channel type field in a control word of the test message, the channel type field indicating that the test message carries performance testing related information.
 18. The device of claim 17, wherein the one or more processors are further configured to: actively monitor the pseudowire using the active performance monitoring control channel.
 19. The device of claim 18, wherein the one or more processors are further configured to: evaluate at least one of throughput, latency, packet loss, or jitter. 